package br.edu.senai.controller;

import br.edu.senai.model.Categoria;
import java.util.List;
import javax.persistence.Query;

public class CategoriaDAO {

    private final Conexao conexao = new Conexao();

    public void salvar(Categoria c) {

        if (c.getId() == null) {
            conexao.persist(c);
        } else {
            conexao.conectar();
            Categoria pTemp = conexao.getEm().find(Categoria.class, c.getId());
            conexao.desconectar();

            if (pTemp != null) {
                conexao.alterar(c);
            } else {
                conexao.persist(c);
            }
        }
    }

    public void remover(Categoria c) {
        conexao.excluir(c);
    }

    public List<Categoria> listar() {
        conexao.conectar();
        Query q = conexao.getEm().createQuery("select c from tb_categoria c");
        List<Categoria> lCategoria = q.getResultList();
        conexao.desconectar();
        return lCategoria;
    }
    
    public Categoria find(Integer id) {
        conexao.conectar();
        Categoria c = conexao.getEm().find(Categoria.class, id);
        conexao.desconectar();
        return c;
    }
}
